package com.gun.management.module.task.controller.admin.taskInfo.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.gun.management.module.task.dal.dataobject.taskInfo.ShareContent;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 任务信息新增/修改 Request VO")
@Data
public class TaskInfoSaveReqVO  {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "任务图标", example = "http://***.com/images/test.png")
    private String avatar;

    @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "邀请注册任务")
    @NotEmpty(message = "任务名称不能为空")
    private String name;

    @Schema(description = "任务简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "2025年邀请注册任务")
    @NotEmpty(message = "任务简介不能为空")
    private String taskIntroduct;

    @Schema(description = "任务类型(1-邀请新用户 2-应用市场评价 3-参与活动 4-分享微信好友  5-分享朋友圈)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long categoryId;

    @Schema(description = "奖励积分", example = "10")
    private Integer rewardScore;


    @Schema(description = "受邀人注册成功", example = "10")
    private Integer rewardAfterRegistered;

    @Schema(description = "受邀人实名认证", example = "10")
    private Integer rewardAfterAuthed;

    @Schema(description = "受邀人授信通过", example = "10")
    private Integer rewardAfterGranted;

    @Schema(description = "受邀人完成提款", example = "10")
    private Integer rewardAfterWithdrawal;

    @Schema(description = "每天奖励次数", example = "20")
    private Integer dayRewardTimes;

    @Schema(description = "累计最多奖励次数", example = "100")
    private Integer maxRewardTimes;

    @Schema(description = "按钮名称", example = "邀请注册")
    private String buttonName;

//    @Schema(description = "跳转URL地址", example = "https://www.iocoder.cn")
//    private String jumpUrl;

    /**
     * 跳转功能函数类型(对应数据字典function_type)
     */
    @Schema(description = "跳转功能函数类型(shareTo-分享好友或朋友圈 jumpToAppStore-跳转应用市场  pushWindow-跳转APP内页 getSessionID-授权登录 loginExceptionHandle-登录异常处理)", example = "shareTo")
    private String functionType;

    /**
     * 内容类型(对应数据字content_type)
     */
    @Schema(description = "内容类型(01-分享微信好友纯文本 02-分享微信好友图片 03-分享微信好友链接 11-分享朋友圈纯文本 12-分享朋友圈图片 13-分享朋友圈链接)", example = "02")
    private String contentType;

    /**
     * 分享内容json
     */
    @Schema(description = "分享内容(json格式)", example = "{title:'分享给微信用户',url:'http://****.com/share',img:'http://********.com/images/test.png',desc:'this is test'}")
    private ShareContent shareContentDetail;


    @Schema(description = "状态(0-启用 1-禁用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "状态不能为空")
    private Integer status;

    @Schema(description = "详细规则", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "详细规则不能为空")
    private String content;

    @Schema(description = "备注", example = "你说的对")
    private String remark;


//    @Schema(description = "链接地址")
//    private String jumpUrl;
//
//    @Schema(description = "分享内容")
//    private String shareTitle;
//
//    @Schema(description = "上传图片")
//    private String uploadImage;
//
//
//    @Schema(description = "链接标题")
//    private String title;
//
//
//    @Schema(description = "链接图片")
//    private String img;
//
//
//    @Schema(description = "链接地址")
//    private String url;
//
//    @Schema(description = "链接描述")
//    private String desc;


    /**
     * 排序号
     */
    @Schema(description = "排序号")
    private Integer seqNo;

}